package org.budo.oceanengine.api;

import org.budo.oceanengine.api.entity.AccessTokenResponse;
import org.budo.oceanengine.api.entity.Advertiser;
import org.budo.oceanengine.api.entity.BaseResponse;
import org.budo.oceanengine.api.entity.OceanengineConfig;
import org.budo.oceanengine.api.entity.RefreshTokenResponse;
import org.budo.oceanengine.api.entity.UserInfo;

import java.util.List;
import java.util.Map;

/**
 *  巨量引擎平台接口
 * @author           zhangqian
 * @createDate:     2021/4/15 16:31
 * @version:        1.0
 */
public interface OceanengineApi {
    /**
     *  创建广告主
     *
     * @param config 配置信息
     * @param accessToken token
     * @param paramMap 参数
     */
    BaseResponse createAdvertiser(OceanengineConfig config, String accessToken, Map<String, Object> paramMap);

    /**
     *  查询广告主信息
     *
     * @param config 配置信息
     * @param accessToken token
     * @param advertiserIds 广告主id列表
     */
    BaseResponse getAdvertiserInfo(OceanengineConfig config, String accessToken, List<Long> advertiserIds);

    AccessTokenResponse accessToken(String authCode);

    RefreshTokenResponse refreshToken(String refreshToken);

    Advertiser getAdvertiser(String accessToken);

    UserInfo userInfo(String accessToken);

    /**
     *  获取行业列表
     *
     * @param config 配置信息
     * @param accessToken token
     * @param paramMap 参数
     */
    BaseResponse getIndustryList(OceanengineConfig config, String accessToken, Map<String, Object> paramMap);
}
